Image generation system, program, information storage medium and image generation method

ABSTRACT

An α-value αP1 corresponding to a Z-value of each pixel in an original image and an α-nonuniformity setting α-value a UP which is a nonuniform α-value in a virtual plane are synthesized into an α-value αP2. The color ICP of the original image and the fog color CP are synthesized into a fog image, based on the α-value αP2. A plurality of α-nonuniformity setting α-values provided for the virtual planes different in nonuniformity pattern are synthesized. The nonuniformity patterns are changed depending on the virtual camera information and time information. An α-value used to synthesize the α-nonuniformity setting α-values is set based on a Z-value of each pixel in the original image. A Z-value of each pixel in the original image is used as an index number of a lookup table and the index color texture mapping is applied to a virtual object to convert the Z-value into an α-value.

[0001] Japanese patent application 2002-127033, filed on Apr. 26, 2002,is hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

[0002] The present invention relates to an image generation system, aprogram, an information storage medium and an image generation method.

[0003] In the prior art, there is known an image generation system (orgame system) for generating an image visible from a virtual camera (or agiven viewpoint) in an object space which is a virtual three-dimensionalspace. It is highly popular as a method by which a so-called virtualreality can be experienced. If an image generation system which can playa role playing game (RPG) is considered herein as an example, a playercan enjoy the game by controlling a character (or object) who is its ownduplicate such that it moves on a map in the object space to fightagainst an enemy character, to dialogue any other character or to visitvarious towns.

[0004] Such an image generation system may be required to display a gamescene covered with fog, mist, smoke, dust or the like which willgenerically be referred to “fog” later. To improve the player's feel ofvirtual reality, it is desired that the nonuniformity of the fog canrealistically be represented.

[0005] One technique for representing such nonuniformity in the fog maybe to use a billboard of translucent polygon. In this technique, aplurality of translucent polygons on each of which a nonuniformitypattern in the fog is mapped are provided. These translucent polygonsare arranged directly facing a virtual camera in the direction of depth.

[0006] However, this technique generates an unnatural image sinceintersection lines between the translucent polygons used to representthe fog and the other polygons are visible.

BRIEF SUMMARY OF THE INVENTION

[0007] According to a first aspect of the present invention, there isprovided an image generation system which generates an image visiblefrom a virtual camera in an object space, the image generation systemcomprising:

[0008] an alpha-value synthesis section which synthesizes a first alphavalue and an alpha-nonuniformity setting alpha-value into a second alphavalue, the first alpha value corresponding to a Z-value of each pixel inan original image, and the alpha-nonuniformity setting alpha-value ofeach pixel being nonuniform in a virtual plane; and

[0009] a color synthesis section which synthesizes a color of each pixelin the original image and a given color, based on the second alphavalue.

[0010] According to a second aspect of the present invention, there isprovided an image generation system which generates an image visiblefrom a virtual camera in an object space, the image generation systemcomprising:

[0011] an alpha-value synthesis section which synthesizes a first alphavalue and an alpha-nonuniformity setting alpha-value into a second alphavalue, the alpha-nonuniformity setting alpha-value of each pixel beingnonuniform in a virtual plane; and

[0012] an image generating section which performs image generationprocessing based on the second alpha value,

[0013] wherein the alpha-value synthesis section synthesizes a pluralityof alpha-nonuniformity setting alpha-values provided for a plurality ofvirtual planes into the alpha-nonuniformity setting alpha-value to besynthesized with the first alpha value, the plurality ofalpha-nonuniformity setting alpha-values being different innonuniformity pattern.

[0014] According to a third aspect of the present invention, there isprovided an image generation system which generates an image visiblefrom a virtual camera in an object space, the image generation systemcomprising:

[0015] an alpha-value synthesis section which synthesizes a first alphavalue and an alpha-nonuniformity setting alpha-value into a second alphavalue, the alpha-nonuniformity setting alpha-value of each pixel beingnonuniform in a virtual plane; and

[0016] an image generating section which performs image generationprocessing based on the second alpha value,

[0017] wherein the alpha-value synthesis section changes a nonuniformitypattern in the virtual plane corresponding to the alpha-nonuniformitysetting alpha-value, based on at least one of virtual camera informationand time information.

[0018] According to a fourth aspect of the present invention, there isprovided an image generation system which generates an image visiblefrom a virtual camera in an object space, the image generation systemcomprising:

[0019] an alpha-value synthesis section which synthesizes a first alphavalue and an alpha-nonuniformity setting alpha-value into a second alphavalue, the alpha-nonuniformity setting alpha-value of each pixel beingnonuniform in a virtual plane; and

[0020] an image generating section which performs image generationprocessing based on the second alpha value,

[0021] wherein the alpha-value synthesis section sets an alpha-valueused to synthesize the alpha-nonuniformity setting alpha-values, basedon a Z-value of each pixel in an original image.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING

[0022]FIG. 1 is a functional block diagram of an image generation systemaccording to one embodiment of the present invention.

[0023]FIG. 2 illustrates a technique of converting a Z-value of anoriginal image into an alpha (α)-value and using the α-value tosynthesize the original image colors with the fog color.

[0024]FIG. 3 illustrates an index color texture mapping.

[0025]FIG. 4 illustrates a technique of using the index color texturemapping to convert a Z-value into an α-value.

[0026]FIG. 5 illustrates a technique of synthesizing according to oneembodiment of the present invention.

[0027]FIG. 6 shows an example of an original image.

[0028]FIG. 7 shows an example of an α-nonuniformity setting α-value.

[0029]FIG. 8 shows an example of a nonuniformity pattern texture.

[0030]FIG. 9 shows an example of a fog image generated according to oneembodiment of the present invention.

[0031]FIG. 10 shows another example of a fog image generated accordingto one embodiment of the present invention.

[0032]FIG. 11 is a graph showing the relationship between a Z-value andfog density in an exponential fog.

[0033]FIG. 12 is a graph showing how the nonuniformity of fog is formed.

[0034]FIG. 13 is a diagram for illustrating a technique of synthesizinga plurality of α-nonuniformity setting α-values having differentnonuniformity pattern in a virtual plane.

[0035]FIGS. 14A and 14B are also diagrams for illustrating a techniqueof synthesizing a plurality of α-nonuniformity setting α-values havingdifferent nonuniformity pattern in a virtual plane.

[0036]FIGS. 15A and 15B are diagrams for illustrating a technique ofchanging the nonuniformity pattern based on the virtual camerainformation.

[0037]FIGS. 16A and 16B are diagrams for illustrating a technique ofchanging the nonuniformity pattern by setting the texture coordinates ofa virtual object.

[0038]FIGS. 17A and 17B are graphs for illustrating a technique ofsetting an α-value used to synthesize α-nonuniformity setting α-values,based on a Z-value of an original image.

[0039]FIG. 18 is a program analysis diagram (PAD) showing details ofprocessing in one embodiment of the present invention.

[0040]FIG. 19 is a PAD showing processing details in one embodiment ofthe present invention.

[0041]FIG. 20 is a PAD showing processing details in one embodiment ofthe present invention.

[0042]FIG. 21 is a PAD showing processing details in one embodiment ofthe present invention.

[0043]FIG. 22 is a diagram for illustrating a technique of setting avirtual distance.

[0044]FIG. 23A is a diagram for illustrating a technique of restraininga range in which a virtual plane exists, and FIG. 23B is a diagram forillustrating setting of blend weight.

[0045]FIGS. 24A, 24B and 24C are graphs for illustrating the conversioncharacteristics of a lookup table.

[0046]FIG. 25 shows an example of hardware configuration of oneembodiment of the present invention.

[0047]FIGS. 26A, 26B and 26C show various system forms to whichembodiments of the present invention are applied.

[0048]FIG. 27 is a diagram for illustrating a technique of synthesizingα-values and colors by a pixel unit.

DETAILED DESCRIPTION OF THE EMBODIMENT

[0049] Embodiments of the present invention will be described.

[0050] Note that the embodiments described below do not in any way limitthe scope of the invention laid out in the claims herein. In addition,all elements of the embodiments described below should not be taken asessential requirements of the present invention.

[0051] According to one embodiment of the present invention, there isprovided an image generation system which generates an image visiblefrom a virtual camera in an object space, the image generation systemcomprising:

[0052] an alpha-value synthesis section which synthesizes a first alphavalue and an alpha-nonuniformity setting alpha-value into a second alphavalue, the first alpha value corresponding to a Z-value of each pixel inan original image, and the alpha-nonuniformity setting alpha-value ofeach pixel being nonuniform in a virtual plane; and

[0053] a color synthesis section which synthesizes a color of each pixelin the original image and a given color, based on the second alphavalue.

[0054] In this embodiment, the first alpha-value corresponding to theZ-value (or depth value) of the original image and thealpha-nonuniformity setting alpha-value are synthesized into the secondalpha-value which is in turn used to synthesize the color of theoriginal image and a given color (e.g., fog color). Thus, an imageeffect in which both the Z-value of the original image andalpha-nonuniformity (nonuniformity pattern) are added can be given tothe original image. As a result, a realistic and natural image can begenerated.

[0055] The Z-value of the original image may be used as an index numberof a lookup table for index color texture mapping (i.e., by using theZ-value as an index number), and index color texture mapping may beapplied to a virtual object using the lookup table so that the Z-valueof the original image can be converted into the first alpha-value.

[0056] In this embodiment, the color synthesis section can be omitted.

[0057] In the image generation system, program, information storagemedium and image generation method according to this embodiment of thepresent invention, the alpha-value synthesis section may synthesize aplurality of alpha-nonuniformity setting alpha-values provided for aplurality of virtual planes into the alpha-nonuniformity settingalpha-value to be synthesized with the first alpha value, the pluralityof alpha-nonuniformity setting alpha-values being different innonuniformity pattern.

[0058] In such a case, a virtual distance from a virtual camera to eachof the virtual planes respectively corresponding to thealpha-nonuniformity setting alpha-values is provided. Based on thevirtual distances, alpha-values used to synthesize thealpha-nonuniformity setting alpha-values or nonuniformity patterns inthe virtual planes for the alpha-nonuniformity setting alpha-values canbe controlled.

[0059] In the image generation system, program, information storagemedium and image generation method according to this embodiment of thepresent invention, the alpha-value synthesis section may reduce asynthesis rate of an alpha-nonuniformity setting alpha-value for thenearest virtual plane among the plurality of virtual planes when avirtual distance from the virtual camera to the nearest virtual plane isshorter than a given distance; and the alpha-value synthesis section mayreduce a synthesis rate of an alpha-nonuniformity setting alpha-valuefor the farthest virtual plane among the plurality of virtual planeswhen a virtual distance from the virtual camera to the farthest virtualplane is larger than a given distance.

[0060] After the synthesis rate of the alpha-nonuniformity settingalpha-value corresponding to the nearest virtual plane has been reduced(or made to zero), a new virtual plane may further be provided behindthe farthest virtual plane. After the synthesis rate of thealpha-nonuniformity setting alpha-value corresponding to the farthestvirtual plane has been reduced (or made to zero), a new virtual planemay further be provided at a position nearer to the virtual camera thanthe nearest virtual plane.

[0061] In the image generation system, program, information storagemedium and image generation method according to this embodiment, thealpha-value synthesis section may change a nonuniformity pattern in thevirtual plane corresponding to the alpha-nonuniformity settingalpha-value, based on at least one of virtual camera information andtime information.

[0062] Thus, the nonuniformity pattern can be variously changed togenerate a more realistic image, depending on the movement of thevirtual camera or the passage of time.

[0063] In this case, the nonuniformity patterns in the virtual planesfor the plural alpha-nonuniformity setting alpha-values may be changed,or the nonuniformity pattern for the alpha-nonuniformity settingalpha-value (to be synthesized with the first alpha-value) provided bysynthesizing plural alpha-nonuniformity setting alpha-values may bechanged.

[0064] In the image generation system, program, information storagemedium and image generation method according to this embodiment, thealpha-value synthesis section may enlarge a nonuniformity pattern of thealpha-nonuniformity setting alpha-value in the virtual plane when avirtual distance from the virtual camera to the virtual plane decreases.

[0065] In the image generation system, program, information storagemedium and image generation method according to this embodiment, whenthe virtual camera moves in a first direction which is parallel to ascreen, the alpha-value synthesis section may move a nonuniformitypattern of the alpha-nonuniformity setting alpha-value in the virtualplane in a second direction which is opposite to the first direction.

[0066] In such a case, the distance of movement of the nonuniformitypattern of the alpha-nonuniformity setting alpha-value may be changeddepending on the virtual distance from virtual camera.

[0067] In the image generation system, program, information storagemedium and image generation method according to this embodiment, thealpha-value synthesis section may apply nonuniformity pattern texturemapping to a virtual object to generate the alpha-nonuniformity settingalpha-value, and change texture coordinates of the virtual objectdepending on at least one of the virtual camera information and the timeinformation.

[0068] This makes it possible to change the nonuniformity pattern in asimplified manner.

[0069] In the image generation system, program, information storagemedium and image generation method according to this embodiment, thealpha-value synthesis section may set an alpha-value used to synthesizethe plurality of alpha-nonuniformity setting alpha-values, based on aZ-value of each pixel in the original image.

[0070] This enables an alpha-value used to synthesize thealpha-nonuniformity setting alpha-values may be set in consideration ofthe Z-value of the original image.

[0071] In the image generation system, program, information storagemedium and image generation method according to this embodiment, whencomparison of Z-values of pixels in the original image and a virtualZ-value of the virtual plane corresponding to the alpha-nonuniformitysetting alpha-value to be synthesized with the first alpha valueindicates that the pixels in the original image are nearer to thevirtual camera than the virtual plane, the alpha-value synthesis sectionmay set an alpha value used to synthesize the plurality ofalpha-nonuniformity setting alpha-values into an alpha value whichinvalidates synthesis of the alpha-nonuninformity setting alpha-values.

[0072] When the pixel in the original image is farther from the virtualcamera than the virtual plane by a given distance (or a distance shownby a Z-value), an alpha-value used to synthesize the alpha-nonuniformitysetting alpha-values can be preferably increased.

[0073] In the image generation system, program, information storagemedium and image generation method according to this embodiment, thealpha-value synthesis section may use a Z-value of each pixel in theoriginal image as an index number of a lookup table for index colortexture mapping and apply index color texture mapping to a virtualobject using the lookup table so that the Z-value is converted into analpha value used to synthesize the plurality of alpha-nonuniformitysetting alpha-values.

[0074] This makes it possible to convert the Z-value of the originalimage into the alpha-value used to synthesize the alpha-nonuniformitysetting alpha-value with a reduced processing load.

[0075] This embodiment of the invention will be described in detailswith reference to the drawing.

[0076] 1. Configuration

[0077]FIG. 1 shows a functional block diagram of an image generationsystem (or game system) according to this embodiment. In FIG. 1, thisembodiment may comprise at least a processing section 100 (or a storagesection 170 in addition to the processing section 100), the remainingsections (or functional blocks) being configured by any components.

[0078] A operating section 160 receives control data from a player, itsfunction being able to be implemented by hardware such as a lever, abutton, a steering wheel, a shift lever, an accelerator pedal, a brakepedal, a microphone, a sensor or a housing.

[0079] A storage section 170 provides a work area for the processingsection 100 and a communication section 196, its function being able tobe implemented by hardware such as RAM.

[0080] An information storage medium (or computer-readable medium) 180stores programs and data, its function being able to be implemented byhardware such as a laser disk (such as CD or DVD), a magneto-opticaldisk (MO), a magnetic disk, a hard disk, a magnetic tape or a memory(ROM). The processing section 100 performs various kinds of processesaccording to this embodiment, based on programs (or data) which havebeen stored in this information storage medium 180. In other words, theinformation storage medium 180 has stored (or recorded) a program forcausing a computer to function various sections (or means) according tothis embodiment or for causing a computer to implement these sections.

[0081] A display section 190 outputs an image generated by thisembodiment, its function being able to be implemented by hardware suchas CRT, LCD or HMD (head-mount display).

[0082] A sound output section 192 outputs a sound generated by thisembodiment, its function being able to be implemented by hardware suchas loud speakers or headphones.

[0083] A portable information storage 194 stores a player's personaldata or to save data relating to a game and may be of any form such as amemory card or a portable game device.

[0084] A communication section 196 performs various controls forcommunications between the game system and any other external instrument(e.g., a host device or another image generation system), its functionbeing able to be implemented by hardware such as various kinds ofprocessors or ASIC or programs.

[0085] The program (or data) for causing the computer to function as therespective units or sections (or means) according to this embodiment maybe distributed from the information storage medium possessed by the hostdevice (or server) through a network and the communication section 196into the information storage medium 180 (or storage section 170). Use ofthe information storage medium in such a host device (or server) is alsoincluded within the scope of the present invention.

[0086] The processing section (or processor) 100 performs processing forgame, image generation or sound generation, based on the operation dataand programs from the operating section 160. In this case, theprocessing section 100 performs various processings using a main storageportion 172 in a storage section 170 as a work region. The function ofthis processing section 100 can be implemented by hardware such asvarious processors (CPU, DSP and the like) or ASIC (gate array or thelike) or a program (or game program).

[0087] The processing section 100 comprises a movement/action processingsection 110, an object space setting section 112, a virtual cameracontrolling section 114, an image generating section 120 and a soundgenerating section 130. The processing section 100 does not necessarilyinclude all of these section (or functional blocks), but some may beomitted.

[0088] The movement/action processing section 110 determines theinformation of movement (position and rotational angle) relating to anobject (or moving body) and the information of action (positions androtational angles of object parts). That is to say, the movement/actionprocessing section 110 performs a processing of causing the object tomove and/or act (motion and animation), based on the control datainputted by the player through the operating section 160 and/or a gameprogram.

[0089] The object space setting section 112 arranges various objectssuch as movable bodies (characters, motorcars, tanks and robots), posts,walls, buildings and maps (landforms) within the object space. Theseobjects may be formed by primitive faces such as polygons, free-formsurfaces or sub-division surfaces. More particularly, the object spacesetting section 112 determines the position and rotational angle(direction) of an object in the world coordinate system and locates theobject at that position (X, Y, Z) with that rotational angles (about X-,Y- and Z-axes).

[0090] The virtual camera operating section 114 controls a virtualcamera set in the object space. That is to say, the virtual cameraoperating section 114 determines the information of virtual camera suchas a virtual camera position (X, Y, Z) or virtual camera rotations(about X-, Y- and Z-axes) to control the virtual camera.

[0091] It is desirable that, for example, if a moving object isphotographed from the rear thereof by the virtual camera, the positionor rotation (or direction) of the virtual camera is controlled so thatit follows the changed position or rotation of the moving body. In thiscase, the virtual camera will be controlled based on the informationobtained by the movement/action processing section 110, including theposition, direction or velocity of the moving body. Alternatively, thevirtual camera may be rotated through a predetermined angle while movingit along a predetermined path of movement. In such a case, the virtualcamera will be controlled based on information relating to a path ofcamera movement which has previously been provided to specify theposition (or path of movement) and/or rotational angle of the virtualcamera.

[0092] The image generating section 120 draws or generates an imagebased on the results of various processings at the processing section100 and outputs it toward the display section 190. For example, if aso-called three-dimensional game image is to be generated, variousgeometry-processings such as coordinate conversion, clipping,perspective conversion and light-source computation are first carriedout with the results thereof being then used to prepare drawing data(which may include the positional coordinates, texture coordinates,color (or brightness) data, normal vector or α-value that is to beapplied to each vertex (or composing point) in a primitive face) And,based on this drawing data (or primitive face data), the image of thegeometry-processed object (which may consist of one or more primitivefaces) is then drawn in a drawing buffer 174 (which may be a frame orwork buffer for storing the image information by pixel unit). Thus, animage visible from the virtual camera (or a given viewpoint) in theobject space will be generated.

[0093] The image generating section 120 uses a Z buffer 176 stored theZ-value (depth value) to perform the hidden-surface removal through theZ-buffer method (or depth comparison method). Furthermore, the imagegenerating section 120 maps a texture stored in a texture storagesection 178 onto an object (primitive face). In such a case, the imagegenerating section 120 can perform the texture mapping using a lookuptable (LUT) for index color texture mapping stored in an LUT storagesection 179.

[0094] The sound generating section 130 performs a sound processingbased on the results of various processings at the processing section100 to generate game sounds such as BGMs, effect sounds or voices, whichare in turn outputted toward the sound output section 192.

[0095] The image generating section 120 includes an α-value synthesissection 122 which synthesizes the first α-value with an α-nonuniformitysetting α-value (including the multiplication, addition, division orsubtraction of α-values) to generate the second α-value.

[0096] In the first α-value, the α-value for each pixel is set, forexample, at a value depending on the Z-value of each pixel in theoriginal image. In the α-nonuniformity setting α-value, further, theα-value of each pixel in a virtual plane (between pixels) isnonuniformly set.

[0097] The original image may be one that is generated by drawing anobject into the drawing buffer 174 while performing the hidden-surfaceremoval through the Z buffer 176 stored the Z-values, for example. And,the Z-value in the original image is generated (or stored) on the Zbuffer 176 through the Z-buffer method (or depth comparison method)which is carried out in this drawing process.

[0098] The Z-value (depth value) in this embodiment may be a Z-valueitself on the Z coordinate axis in the camera coordinate system or aparameter mathematically equal to this Z-value. For example, the Z-valuemay be a parameter corresponding to an inverse number of Z-value in thecamera coordinate system or a parameter provided by subjecting theZ-value in the camera coordinate system to a given converting process.

[0099] The image generating section 120 also includes a color synthesissection 124 for performing a process of synthesizing the color of theoriginal image with a given color (e.g., fog color) based on the secondα-value (which process, in a broad sense, is to generate an image basedon the second α-value). The synthesizing process in this case may be ofany one of α-blending (which is a narrow α-blending), additionα-blending or subtraction α-blending. Such a synthesizing process cangenerate an image in which the original image is covered with a fog(which may include a cloud, a steam, a mist, dust, dirt, smoke, tornadoor dew).

[0100] If it is exemplified that the synthesizing is α-blending (ornarrow α-blending), the color synthesis section 124 carries outsynthesize processing according to the following expressions.

R _(Q)=(1−α)×R ₁ +α×R ₂  (1)

G _(Q)=(1−α)×G ₁ +α×G ₂  (2)

B _(Q)=(1−α)×B ₁ +α×B ₂  (3)

[0101] In these expressions, R₁, G₁ and B₁ are R, G and B components ofthe color (or brightness) in the original image (which has already beendrawn in the drawing buffer 174) while R₂, G₂ and B₂ are R, G and Bcomponents of the given color (or fog color). Furthermore, R_(Q), G_(Q)and B_(Q) are R, G and B components in the color of an image provided bythe α-blending (or a completion image or a fog image).

[0102] The α-value (A-value) is information which can be storedassociated with each pixel (texel or dot). For example, it may be +alphainformation other than the color information. The α-value can be used asmask information, translucency information (which is equivalent totransparency and opacity) or bump information.

[0103] The image generation system of this embodiment may be dedicatedfor a single-player mode in which only a single player can play a gameor may have a multi-player mode in which a plurality of players can playa game simultaneously.

[0104] If a plurality of players play the game, a single terminal maybeused to generate game images and game sounds to be provided to theseplural players. Alternatively, these game images and sounds may begenerated through a plurality of terminals (game machines or cellularphones) which are interconnected through a network (or transmissionline, telecommunication line).

[0105] 2. Techniques in the Embodiment

[0106] The techniques in this embodiment will now be described withreference to the drawing.

[0107] Although there will be described a case when a techniqueaccording to this embodiment is applied to represent a fognonuniformity, this technique may be applied to represent any imageother than the fog nonuniformity.

[0108] 2.1 Change of Fog Density Depending on Distance

[0109] In order to represent the effect of fog more realistically, it isdesirable to change the fog density depending on the distance from thevirtual camera (or viewpoint). That is to say, the fog density isincreased as that distance increases.

[0110] To change the fog density in such a manner, it is desirable tochange the α-value, which is a parameter for controlling the fogdensity, depending on the distance from the virtual camera. That is tosay, the α-value is controlled so that the fog density increases as thedistance from the virtual camera increases.

[0111] For such a reason, this embodiment takes a technique ofconverting a Z-value, which is a parameter of the distance from virtualcamera (depth distance), into an α-value. More particularly, a Z-valueZP in an original image (which has been drawn in a drawing buffer) isconverted into the first α-value αP1, as shown by A1 in FIG. 2.

[0112] The color ICP of the original image (RGB or YUV) is thensynthesized with the color CP of the fog (white or gray) based on αP1,as shown by A2 in FIG. 2. Thus, there can be generated a fog imageprovided by applying the fog effect to the original image (which fogimage is, in a broad sense, a completed image).

[0113] This embodiment implements the conversion of the Z-value shown byA1 in FIG. 1 into the α-value by effectively using the index colortexture mapping.

[0114] That is to say, in the index color texture mapping, an indexnumber is stored associated with each texel in the texture, rather thanthe actual color information (RGB) for saving the memory capacity of thetexture storage, as shown by B1 in FIG. 3. As shown by B2 in FIG. 3,moreover, the color information specified by the index number is storedin LUT (color palette) for index color texture mapping. When the texturemapping is to be made on an object, LUT is referred to based on theindex number for each texel in the texture to read the correspondingcolor information out of the LUT. The read color information is thendrawn in the drawing buffer (or frame buffer).

[0115] In the texture mapping of such an index color mode, the number ofusable colors is reduced, for example, to 256 colors, in comparison withthe texture mapping in the normal mode which does not use LUT. However,the texture storage section can largely save the memory capacity usedtherein since the texture storage section is not necessary to store theactual color information (e.g., the color information of 24 bits).

[0116] This embodiment uses such an index color texture mapping in amanner different from the normal manner.

[0117] That is to say, the Z-value for each pixel in the original imageis first treated as an index number in the lookup table LUT (Z-value isconsidered to be an index number), as shown by B3 in FIG. 4. The indexcolor texture mapping is then made against a virtual object (e.g., asprite polygon having a display screen size) to change the Z-value(image information) in the original image, using the LUT in which theZ-value of the original image has been set as an index number, as shownby B4. Thus, an α-value set by a value depending on the Z-value for eachpixel in the original image can be provided.

[0118] Although the texture mapping is made against the virtual objecthaving the display screen size in FIG. 4, the texture mapping may bemade against a virtual object having a size provided by dividing thedisplay screen.

[0119] 2.2 Fog Nonuniformity

[0120] According to the technique of FIG. 2, the fog effect providingits variable tone depending on the Z-value (or the distance from thevirtual camera) can be applied to the original image. And yet, thetechnique of FIG. 2 is advantageous in that it can reduce its processingload since it is only required to perform the index color texturemapping against the virtual object.

[0121] However, the technique of FIG. 2 raises a problem in that itcannot represent a fog having its nonuniform tone (density), that is, anonuniform fog.

[0122] In this case, a technique of providing a tone of color such aswhite color, gray color or black color to the color CP of FIG. 2 (afog-colored sprite) maybe considered, for example.

[0123] However, such a technique can only produce αgray- orblack-colored fog, but not provide a fog having its nonuniform tone.

[0124] To overcome such a problem, this embodiment adopts a technique ofproviding a nonuniform α-value, that is, a technique of unequalizing theα-value in a virtual plane (between pixels).

[0125] That is to say, first of all, this embodiment changes the Z-value(Z plane) ZP in the original image in the same manner as in FIG. 2, asshown by C1 in FIG. 5. This provides the first α-value (or firstα-plane) αP in which the α-value for each pixel is set depending on thevalue ZP. In this case, the conversion from ZP to αP1 is implemented,for example, by the conversion using the index color texture mapping asdescribed in connection with FIG. 4.

[0126] This embodiment further provides an α-nonuniformity settingα-value (or α-nonuniformity setting α-plane) αUP in which the α-value isnonuniformly set in the virtual plane, as shown by C2 in FIG. 5. Thedetails of this αUP generating technique will be described later.

[0127] This embodiment then provides the second α-value (or secondα-plane) αP2 by synthesizing the values α-value P1 and αUP, as shown byC3 in FIG. 5. In such a manner, the α-value (fog density) in which boththe Z-value and α-nonuniformity (a nonuniformity pattern) are added canbe provided. The synthesizing of α-values may be carried out bymultiplying the αP1 and αUP for each pixel. However, any synthesizing ofα-value addition, subtraction or division other than the multiplicationmay be adopted.

[0128] Next, this embodiment then generates a fog image (or completedimage) by synthesizing the color ICP of the original image with thecolor CP (or fog color) based on the αP2 thus provided, as shown by C4in FIG. 5. At this time, the synthesizing of color may be the narrowα-blending (the above numerical expressions (1) to (3)) or an additionα-blending.

[0129] In the above-mentioned manner, a fog having its variable densitydepending on the Z-value (distance) with the density being nonuniformcan be applied to the original image.

[0130]FIG. 6 shows an example of the original image usable in thisembodiment. This original image comprises a plurality of cube-shapedobjects which are arranged in a slant direction from the left side tothe right side as viewed from the virtual camera.

[0131]FIG. 7 shows an α-nonuniformity setting α-value αUP and FIG. 8shows a nonuniformity pattern texture TEX which is used to generate thisαUP. In FIGS. 7 and 8, each of the white-color parts has its reducedα-value to thin the fog density. On the other hand, each of theblack-color parts has its increased α-value to thicken the fog density.In FIGS. 7 and 8, thus, the α-values (fog densities) are nonuniformwithin the virtual plane (screen).

[0132]FIGS. 9 and 10 show fog images generated according to thisembodiment. According to this embodiment, the density of fog increasesas the distance from the viewpoint (virtual camera) increases, as shownin FIGS. 9 and 10. In addition, it looks as if the object is coveredwith an actual fog since the fog density is uneven. This is successfulin generation of an unprecedented realistic image.

[0133] 2.3 Density and Intensity of Fog

[0134]FIG. 11 illustrates the relationship between the Z-value (Z buffervalue) and fog density in an exponential fog. Symbols E1 to E5 in FIG.11 indicate characteristic curves for different intensities of fog. Thecharacteristic curve E1 has the maximum fog intensity while thecharacteristic curve E5 has the minimum fog intensity.

[0135] To represent the nonuniformity in the fog, it is changeddepending on the fog density which is determined by the fog intensityand Z-value (distance from the virtual camera). And, it is desirablethat the change of the fog density due to the nonuniformity has atendency resembling the change of the fog intensity as much as possible.

[0136] On the other hand, the expression of α-blending used to add thenonuniformity is a primary function as shown in the above-mentionednumerical expressions (1) to (3). In this α-blending, therefore, anoperation which can be carried out for the fog density (α-value) islimited to one that multiplies given magnifications about a given value.

[0137] In this embodiment, thus, an original fog density (α-value) showny F2 is multiplied by a fog nonuniformity value larger than 1 to providea fog density (F1) ranging between F2 and F3, as shown in FIG. 12. Aclamping process for providing the upper limit of 1.0 (maximum value) isthen applied to the resulting fog density F3, as shown by F4. Thecharacteristic curves for the resulting fog densities F3 and F4 aresimilar to the characteristic curve of the fog density as shown by E5 inFIG. 11, thereby providing the fog density closer to the actual fog inthe real world.

[0138] If the technique of setting the fog nonuniformity value largerthan 1 as in this embodiment is adopted, the fog nonuniformity willdisappear as the fog intensity decreases, even though the intensity ofthe fog nonuniformity is invariable. If the intensity of the fognonuniformity is changed in conjunction with the fog intensity, it isnot necessary to adopt the technique of setting the fog nonuniformityvalue larger than 1.

[0139] 2.4 Multi-Layering of Nonuniformity Pattern

[0140] If only a single virtual plane for the α-nonuniformity settingα-value is used, it looks as if the fog nonuniformity exists only at acertain depth. This cannot represent an enough real fog.

[0141] In this embodiment, thus, a plurality of virtual planes PL0, PL1and PL2 (which number may be two or more than four) having differentvirtual distances d0, d1 and d2 from the virtual camera VC are virtuallyarranged, as shown in FIG. 13. For example, in FIG. 13, the virtualplane PL0 having its virtual distance d0 is virtually arranged at aposition nearest to the virtual camera VC while the virtual plane PL2having its virtual distance d2 is virtually arranged at a positionfarthest from the virtual camera VC.

[0142] This embodiment provides a plurality of α-nonuniformity settingα-values (a-planes) αUP0 to αUP2 having different nonuniformity patternswithin these virtual planes PL0, PL1 and PL2. And, the α-nonuniformitysetting α-valueαUP is generated by synthesizing these α-nonuniformitysetting α-values αUP0 to αUP2 with other α-values α0 to α2 (synthesizingrates) which are provided based on the virtual distances d0 to d2 or thelike. More particularly, two or more overdrawings are carried out on thework buffer by providing sprites SP0 to SP2 arranged corresponding tothe virtual planes PL0 to PL2 and mapping the textures (see FIG. 8) ofthe α-nonuniformity setting α-values αUP0 to αUP2 over these sprites SP0to SP2. Thus, an image in which two or more overlapping layers of thenonuniformity pattern can be viewed can be generated.

[0143] This embodiment reduces and gradually extinguishes thesynthesizing rate (blend rate) of the α-nonuniformity setting α-valueαUP0 corresponding to the virtual plane PL0 if the virtual camera VCmoves (forward) to reduce the virtual distance d0 of the nearest virtualplane PL0 to a level smaller than a given distance, as shown in FIG.14A. And, a new virtual plane PLN is then produced at a position deeperthan the virtual plane PL2 and the synthesizing rate of theα-nonuniformity setting α-values αUPN corresponding to the new virtualplane PLN is then gradually increased.

[0144] On the other hand, the synthesizing rate of the α-nonuniformitysetting α-value αUP2 corresponding to the virtual plane PL2 is reducedand gradually extinguished if the virtual camera VC moves (backward) toreduce the distance d2 of the deepest virtual plane PL2 to a givendistance, as shown in FIG. 14B. And, a new virtual plane PLN is producedin the front of the virtual plane PL0 and the synthesizing rate of theα-nonuniformity setting α-value αUPN corresponding to the virtual planePLN is gradually increased.

[0145] When such a process as shown in FIGS. 14A and 14B is carried out,the effect similar to that in the case where infinite virtual planes areused can be provided while using a finite number of virtual planes ofαUP0 to αUP2.

[0146] 2.5 Change of Nonuniformity Pattern Based on Virtual CameraInformation

[0147] This embodiment changes the nonuniformity pattern in the virtualplane for α-nonuniformity setting α-value, based on the virtual camerainformation (the position or orientation of the virtual camera) and timeinformation (which represents the course of time or frame).

[0148] More particularly, the nonuniformity pattern of αUP correspondingto PL is enlarged as the virtual distance d (d0 to d2) between thevirtual camera VC and the virtual plane PL (PL0 to PL2) decrease, asshown in FIG. 15A. On the contrary, the nonuniformity pattern of αUP isreduced as the virtual distance d increases.

[0149] In such a manner, as shown in FIG. 13, the αUP0 in the virtualplane PL0 having its virtual distance d0 closer to the virtual camera VCwill have its increased nonuniformity pattern while the αUP2 in thevirtual plane PL2 having its increased virtual distance d2 will have itsdecreased nonuniformity pattern. Therefore, the nonuniformity patterncan be made to have the feeling of depth or third dimension, therebyproviding a more realistic image.

[0150] When the virtual camera VC moves to the first direction (e.g.,leftward direction) parallel to the screen (i.e., X-Y plane in thescreen coordinate system), this embodiment moves the nonuniformitypattern of αUP (αUP0 to αUP2) by an appropriate distance in the second(e.g., rightward) direction, as shown in FIG. 15B.

[0151] In this case, this embodiment changes the distance of movement inthe nonuniformity pattern depending on the virtual distance d (d0-d2) inthe virtual plane PL (PL0-PL2). More particularly, in FIG. 13, with αUP0of the virtual plane PL0 having its smaller virtual distance d0, thedistance of movement in the nonuniformity pattern corresponding to themovement of the virtual camera VC is increased while, with αUP 2 of thevirtual plane PL2 having its larger virtual distance d2, the distance ofmovement in the nonuniformity pattern corresponding to the movement ofthe virtual camera VC is reduced

[0152] Thus, an image looked as if a three-dimensional fog exists can begenerated in spite of a flat virtual plane used therein.

[0153] This embodiment generates such an α-nonuniformity setting α-valueαUP (αUP0 to αUP2) as shown in FIG. 7 by mapping such a nonuniformitypattern texture TEX (α-nonuniformity setting texture) as shown in FIG. 8onto a virtual object (sprite or polygon). And, this embodiment changestexture coordinates set at the virtual object (texture coordinates givento each vertex), based on the virtual camera information (or timeinformation).

[0154] More particularly, the texture coordinates (U0, V0) to (U3, V3)given to the virtual object are changed based on the virtual camerainformation, as shown in FIGS. 16A and 16B.

[0155] For example, the enlargement of the nonuniformity patterndescribed in connection with FIG. 15A can be implemented, for example,if texture coordinates used to read a texture TEX are changed from (U0,V0)-(U3, V3) to (U0′, V0′)-(U3′, V3′), as shown in FIG. 16A. On thecontrary, the reduction of the nonuniformity pattern can be implementedif the texture coordinates are changed from (U0′, V0′)-(U3′, V3′) to(U0, V0)-(U3, V3).

[0156] On the other hand, the movement of the nonuniformity patterndescribed in connection with FIG. 15B can be implemented if the texturecoordinates of a virtual object is changed as shown in FIG. 16B. That isto say, the movement of the nonuniformity pattern can be implemented byusing a so-called texture scroll technique.

[0157] In addition, the flow of fog due to wind can be implemented ifthe nonuniformity pattern is moved or changed in size, based on the timeinformation (or depending on the passage of time) That is to say, thenonuniformity pattern is moved based on a function F (VECC-VECW) whereVECC is the movement vector of the virtual camera and VECW is the windvector. Thus, the flow of fog nonuniformity can be provided.

[0158] 2.6 Consideration of Z Buffer Value

[0159] It is desirable that when the fog nonuniformities(α-nonuniformity setting α-values) are to be superposed one on another,the Z-value (Z buffer value) of the original image which has beenalready drawn is considered. This is because an unnatural image will begenerated when an object placed at a shallower position is covered witha fog nonuniformity to be placed at a deeper position.

[0160] And, the generated image will be unnatural if fog nonuniformitiesto be superposed one on another are drawn by judging the positionalrelationship in the ON/OFF manner as in Z test. Therefore, it isdesirable to take a continually changing manner rather than the ON/OFFmanner.

[0161] For such a reason, this embodiment sets α-values (α0 to α2 inFIG. 13) used to synthesize α-nonuniformity setting α-values, based onthe Z-values in the original image.

[0162] More particularly, the α-value α (α0 to α2) used to synthesizethe αUP is set to provide such a Z-value/α-value characteristic as shownin FIG. 17A.

[0163] For example, it is assumed in FIG. 17B that the Z-value in theface SK of an object OB is ZK, the Z-values in the face SL are ZK to ZLand the Z-value in the background is ZM. It is also assumed that thevirtual Z-value in the virtual plane of the α-nonuniformity settingα-value αUP (or virtual depth distance from the virtual camera) has beenset at ZV.

[0164] In this case, αUP will not be formed in the face SK since α usedto form αUP is equal to zero (minimum) at Z>ZV if it set as in FIG. 17A.Therefore, the face SK of the object OB will not be covered with the fognonuniformity.

[0165] On the other hand, α used to form αUP is continuously changed forthe Z-values in the face SL of the object OB in which the Z-values areZK to ZL. Therefore, the density of fog nonuniformity in the face SLwill continuously be changed.

[0166] In the background where Z-value become ZM, αUP will besynthesized with the synthesizing rate (blend rate) of α=a since α usedto synthesize the αUP is equal to a. Therefore, the background will becovered with a fog having its thickened fog nonuniformity.

[0167] For example, in FIG. 7, αis at a predetermined value (e.g., 0×80)at such a part as shown by G1. Therefore, this part will not have anyfog nonuniformity. Thus, such a more natural and realistic fog image asshown in FIG. 9 can be generated.

[0168] In addition, the Z-value/α-value characteristic shown in FIG. 17Acan be implemented by such a technique using the index color texturemapping as described in FIG. 4.

[0169] More particularly, the Z-value in the original image is treatedas an index number in the lookup table LUT for index color texture(i.e., the Z-value being considered to be an index number). Furthermore,the contents of the lookup table LUT are modified to represent such aZ-value/α-value characteristic as shown in FIG. 17A. The index colortexture mapping is then carried out against a virtual object (sprite orpolygon) which uses this lookup table LUT. Thus, the Z-values of theoriginal image can be converted into the α-values used to synthesize theα-nonuniformity setting α-values, based on such a Z-value/α-valuecharacteristic as shown in FIG. 17A.

[0170] Thus, various Z-value/α-value characteristics can be providedsimply by modifying the contents of the lookup table. Moreover, theprocessing load can be reduced, for example, since the Z-value of theoriginal image can be converted into the corresponding α-value merely byperforming a single texture mapping. However, the Z-value of theoriginal image may be converted into the α-value through a techniquedifferent from one described in connection with FIG. 4.

[0171] 3. Processing in this Embodiment

[0172] Details of the processing performed in this embodiment will bedescribed in connection with the PAD diagrams shown in FIGS. 18, 19, 20and 21.

[0173] For convenience, it is assumed in FIGS. 18 and 19 that each pixelin the frame buffer (or drawing buffer) has three α-values (which willbe referred to A1, A2 and A3). In a system in which each pixel in theframe buffer can have only one α-value, a working area may first beensured on a memory as in the procedures of FIGS. 20 and 21 which willbe described later. A1, A2 and A3 may be then substituted withappropriate values (e.g., Green values) other than the α-values.Thereafter, these values (Green values) may be converted into α-values.

[0174] In addition, a range of convertable Z-value may be restrictedwhen the Z-value (Z buffer value) is to be converted into another valueusing the lookup table (LUT). For example, in a system in which theZ-value is 24 bits and increases toward the proximal side and decreasestoward the distal side, the conversion using only eight bits at themiddle of 24-bit value will be performed as follows.

[0175] That is to say, if the range of Z-value from (0x000000) to(0x00ffff) is to be converted, a region located on the proximal sidefrom (0x00ffff), that is to say, a region exceeding (0x010000) cannot beconverted. In general, the result of conversion for (0x010000) should bedifferent from the result of conversion for (0x000000). Because(0x010000) has the central 8-bit value (0x00) as in (0x000000), however,the same result of conversion will be provided. For such a reason, theregion where the Z-value exceeds (0x010000) cannot be converted. Theproximal region that cannot be converted will be referred to “nearregion”.

[0176] In FIGS. 18 to 21, furthermore, the frame buffer is denoted byFB, the Z butter being ZB and the work buffer being WB. In addition,Red, Green and Blue are sketched with R, G and B respectively whileα-values A1, A2 and A3 are sketched with A. For example, Green in theframe buffer is sketched with FB:G.

[0177]FIG. 18 will be described below.

[0178] First of all, such a fog characteristic (Z-value/α-valuecharacteristic) as shown by F2 in FIG. 12 is set in the lookup table(LUT) lut_(—)0 (step S1). And, the procedure shifts to the processing ineach frame (step S2). In addition, lut_(—)0 designates a lookup tablefor implementing the conversion described in connection with FIG. 4.

[0179] In the processing of each frame, it is first judged whether a fogcharacteristic has been changed (step S3). If it has been changed, a newfog characteristic is set in lut_(—)0 (step S4).

[0180] Next, an object to be covered with a fog is drawn in FB:R, G, B(step S5). At the same time, a Z-value (depth value) is written in at ZB(Z buffer).

[0181] Next, based on the motion of the camera (virtual camerainformation) and the flow of wind, UV values used for virtual distancesd0, d1, d2 and sprite SP0, SP1, SP2 are then determined (step S6). And,a nonuniformity value for near regions is overwritten on FB:A2 (stepS7).

[0182] For example, in this embodiment, virtual planes PL0 to PL2(α-nonuniformity setting α-values αUP to αUP2) in which the virtualdistances d0 to d2 from the virtual camera VC have been set arevirtually arranged and the corresponding sprites SP0 to SP2 (which, in abroad sense, virtual objects) are arranged, as shown in FIG. 22.

[0183] The virtual planes PL0 to PL2 are virtually arranged such thatthey are located perpendicular to the optical axis of the virtual cameraVC, as shown in FIG. 22. And, the virtual distances from the virtualcamera VC to PL0 to PL2 are sequentially denoted by d0, d1, d2 as viewedfrom the proximal side to the virtual camera. The initial value of d0 isassumed DEPTH0. Moreover, the distance between adjacent virtual planesis assumed DIST (constant).

[0184] In other words, d0, d1, d2 are changed while keeping thefollowing relationships.

d1=d0+DIST  (4)

d2=d1+DIST  (5)

[0185] In this embodiment, d0, d1 or d2 is changed depending on themotion of the virtual camera VC (virtual camera information) and theflow of wind. For example, d0 is reduced with the passage of time whenthe virtual camera moves forward or when the flow of wind is against thevirtual camera.

[0186] In order to replace each of the virtual planes PL0 to PL2 withanother, the range in which each of the virtual planes exists isrestricted by defining the respective one of constants D0, D1 and D2 asshown in FIG. 23A.

D0=DEPTH0−0.5×DIST  (6)

D1=DEPTH0+0.5×DIST  (7)

D2=DEPTH0+1.5×DIST  (8)

[0187]D3=DEPTH0+2.5×DIST  (9)

[0188] A technique of determining the virtual distances and UV valuesfrom the motion of the virtual camera and flow of wind (step S6 in FIG.18) will be described below.

[0189] It is, however, assumed that each pixel on the screen is squareand that an aspect ratio of the nonuniformity pattern texture is equalto that of the screen. Moreover, the meaning of symbols used herein isas follows.

[0190] T: Time of one frame (T={fraction (1/60)} seconds at 60frames/second)

[0191] tx, ty, tz: Distance through which the virtual camera movesduring time T (in a camera coordinate system)

[0192] rx, ry, rz: Angle through which the virtual camera rotates duringtime T (in a camera coordinate system)

[0193] wx, wy, wz: Distance through which the wind flows during time T(in a camera coordinate system)

[0194] θz: Rotational angle of the virtual camera about its Z axis

[0195] TEXW: Width of nonuniformity pattern texture (number of pixels)

[0196] SCR_DEPTH: Distance from a virtual camera used for perspectiveconversion to a virtual screen;

[0197] SCRW: Width of a virtual screen used for perspective conversion

[0198] U0, V0: U- and V-values at a left upper corner in a sprite

[0199] U1, V1: U- and V-values at a right upper corner in a sprite

[0200] U2, V2: U- and V-values at a right lower corner in a sprite

[0201] U3, V3: U- and V-values at a left lower corner in a sprite

[0202] ASP: Aspect ratio of screen (vertical size/transverse size)

[0203] A value of d0 is determined as follows.

[0204] That is to say, a new value d0 is formed by adding (tz wz) to thevalue of d0 previous by one frame. And, if d0<DO or d0>D1, the virtualplane is replaced with another virtual plane with the value of d0 beingalso modified.

[0205] More particularly, if the value d0 is further reduced from astate of d0=D0 (or in a case wherein the virtual camera further movesforward), the replacement of virtual planes is carried out. That is tosay, the role of PL1 is shifted into PL0 and the role of PL2 is put intoPL1. And, the virtual distance of PL2 is newly set at d2=D3.

[0206] On the contrary, if the value d0 is further increased from astate of d0=D1 (i.e., d2=D3) (or in a case where the virtual cameramoves backward), the reverse replacement of virtual plane is performed.And, the virtual distance of PL0 is newly set at d0=D0.

[0207] U- and V-values are determined as follows.

[0208] It is now assumed that the central coordinates of the region in anonuniformity pattern texture which is mapped onto a sprite SP0corresponding to the virtual plane PL0 are (cx, cy) and that the widthof that region is w (the number of the pixels). Then, w is provided inthe next expression:

w=TEXW×(d0/DEPTH0)  (10)

[0209] Furthermore, new coordinates are provided by respectively addingdcx, dcy to the values cx, cy previous by one frame.

dcx=(tx−wx−d0×ry)×SCD×WSC  (11)

dcy=(_(—) ty+wy−d0×rx)×SCD×WSC  (12)

[0210] Note that there is the relationship as follows.

SCD=SCR _(—) DEPYH/d0  (13)

WSC=w/SCR _(—) W  (14)

[0211] Then, U- and V-values are obtained by following expressions:

U 0=cx−w×cos(θz)/2−w×sin(θz)×ASP/2  (15)

U 1=cx+w×cos(θz)/2−w×sin(θz)×ASP/2  (16)

U 2=cx+w×cos(θz)/2+w×sin(θz)×ASP/2  (17)

U 3=cx−w×cos(θz)/2+w×sin(θz)×ASP/2  (18)

V 0=cy−w×sin(θz)/2−w×cos(θz)×ASP/2  (19)

V 1=cy−w×sin(θz)/2−w×cos(θz)×ASP/2  (20)

V 2=cy−w×sin(θz)/2+w×cos(θz)×ASP/2  (21)

V 3=cy+w×sin(θz)/2+w×cos(θz)×ASP/2  (22)

[0212] However, instead of using the rotational angle of the virtualcamera about the Z axis as θz, a new value θz may be provided by givinga given initial value to θz and also adding rx to θz for every frame.

[0213] The description returns to FIG. 18.

[0214] After the step S7, a0 is determined based on the virtual distanced0 (step S8). And, a lookup table lut_a0 is created based on d0 and a0(step S9).

[0215] Next, lut_a0 is then used to convert the value of ZB into anα-value which is in turn overwritten onto FB:A1 (step S10 see FIGS. 17Aand 17B). And, a nonuniformity pattern is written into FB:A2 using thenonuniformity pattern texture and U- and V-values (for SP0) (step S11).At this time, the near region is masked and FB:A1 is used to perform theα-blending with the already written values.

[0216] In such a manner, a first plane for α-nonuniformity settingα-value (a nonuniformity pattern) is written into FB:A2.

[0217] Next, a1 is then determined based on the virtual distance d1(step S12). And, a lookup table lut_a1 is created based on d1, a1 (stepS13).

[0218] Next, lut_a1 is then used to convert the value of ZB into anα-value which is in turn overwritten onto FB:A1 (step S14) And, anonuniformity pattern is written into FB:A2 using the nonuniformitypattern texture and U- and V-values (for SP1) (step S15). At this time,the near region is masked and FB:A1 is used to perform the α-blendingwith the already written values.

[0219] In this manner, the synthesized first and second planes forα-nonuniformity setting α-values (nonuniformity patterns) are writteninto FB:A2.

[0220] Next, a2 is determined based on the virtual distance d2 (stepS16). And, a lookup table lut_a2 is created based on d2, a2 (step S17).

[0221] Next, lut_a2 is then used to convert the value of ZB into anα-value which is in turn overwritten onto FB:A1 (step S18) And, anonuniformity pattern is written into FB:A2 using the nonuniformitypattern texture and U- and V-values (for SP2) (step S19). At this time,the near region is masked and FB:A1 is used to perform the α-blendingwith the already written values.

[0222] In this manner, the synthesized first, second and third planesfor α-nonuniformity setting α-values (nonuniformity patterns) arewritten into FB:A2 (see FIG. 13).

[0223] Next, the value of FB:A2 is multiplied by an α-value for nearregion, clamped with 1.0 and overwritten onto FB:A3 (step S20).

[0224] Next, the lookup table lut_(—)0 set in the step S1 or S4 of FIG.18 is used to convert the value of ZB into an α-value. The value ofFB:A2 is then multiplied by this α-value, clamped with 1.0 and writteninto FB:A3 (step S21). At this time, the near region is masked toperform the overwriting.

[0225] Thus, the conversion of Z-value into the α-value shown by C1 inFIG. 5 is implemented together with the synthesizing of α-values shownby C3.

[0226] Next, fog color objects each having a full screen size are thendrawn in FB:R, G, B (step S22). At this time, FB:A3 is used to performthe α-blending with the already written values. Thus, the synthesizingof colors shown by C4 in FIG. 5 is implemented.

[0227] Finally, an object which does not want to be covered with a fogis overdrawn on FB:R, G, B (step S23).

[0228] However, the determination of a0, a1 and a2 in the steps S8, S12and S16 shown in FIGS. 18 and 19 can be implemented as follows.

[0229] That is to say, if the blend weights of the virtual planes PL0,PL1 and PL2 are assumed w0, w1 and w2, these values w0, w1 and w2 willbe set as shown in FIG. 23B.

[0230] That is to say, w1 is always made 1.

[0231] Moreover, w0 is made equal to 1 with d0≧D0+DIST/2. Withd0<D0+DIST/2, w0 is reduced as d0 is reduced. At d0=D0, w0 is made equalto 0.

[0232] w2 is made equal to 1 with d2<D2+DIST/2. With d2>D2+DIST/2, w2 isreduced as d2 is increased. At d2=D3, w2 is made equal to zero.

[0233] If the α-values of the virtual planes PL0, PL2 and PL3 are a0,a1, a2, these values can be determined based on the blend weights w0 tow2.

a0=w0/(1+w0)  (23)

a1=w1/(1+w0+w1)  (24)

a2=w1/(1+w0+w1+w2)  (25)

[0234] Moreover, the conversion characteristics (α-values of α0, α1 andα2) of the Look-up tables lut_a0, lut_a1 and lut_a2 created in the stepsS9, S13 and S17 of FIGS. 18 and 19 are exemplified in FIGS. 24A, 24B and24C.

[0235] In FIGS. 24A, 24B and 24C, Z0, Z1, Z2 and Z3 are virtual Z-valuesprovided from the virtual distances d0, d1 and d2 of the virtual planesPL0, PL1 and PL2 as well as d2+DIST. More particularly, these values Z0,Z1, Z2 and Z3 can be provided based on inverse numbers of d0, d1, d2 andd2+DIST or the like. In addition, d0, d1, d2 and d2+DIST themselves maybe set in Z0, Z1, Z2 and Z3, respectively.

[0236] a0, a1 and a2 of FIGS. 24A, 24B and 24C are respectively α-valuesof the virtual planes PL0, PL1 and PL2 determined in the steps S8, S12and S16, respectively.

[0237] It is now assumed, for example, that the virtual distances d0, d1and d2 of the virtual planes PL0, PL1 and PL2 are at positions H1, H2and H3 in FIG. 23B, respectively. Then, blend weights w0, w1 and w2 atthat time are determined based on this conversion characteristic of FIG.23B.

[0238] If the determined blend weights w0, w1 and w2 are substituted forthe above-mentioned expressions (23), (24) and (25), a0, a1 and a2 willbe obtained. Thus, a0, a1 and a2 respectively shown by 11, 12 and 13 inFIGS. 24A, 24B and 24C are specified. Moreover, the virtual Z-values Z0,Z1, Z2 and Z3 shown by 14, 15, 16, 17 of FIGS. 24A, 24B, 24C arespecified based on virtual distances d0, d1, d2 and d2+DIST,respectively. Thus, the conversion characteristics of 1Ut_a0, 1Ut_a1 and1Ut_a2 are specified.

[0239] And, based on the conversion characteristics of FIGS. 24A, 24Band 24C, the Z-value of each pixel in the original image is convertedinto an α-value, with the resulting α-value being used to perform theblending of nonuniformity patterns (α-nonuniformity setting α-values).

[0240] Therefore, if the Z-value of that pixel in the original image iswithin such a range as shown by 18 in FIG. 24A, no synthesizing of αUP0(PL0) for that pixel will be carried out. Similarly, if the Z-value ofthat pixel in the original image is within such a range as shown by 19,110 of FIGS. 24B and 24C, no blending of αUP1 (PL1) and αUP2 (PL2) willbe performed for that pixel. Thus, such a natural and realistic fogimage as shown in FIGS. 9 and 10 can be generated.

[0241]FIGS. 20 and 21 show PAD diagrams illustrating a process in asystem in which each pixel in a frame buffer has only a single α-value.

[0242] The process of FIGS. 20 and 21 is different from that of FIGS. 18and 19 only in the following points.

[0243] For example, at step S37 in FIG. 20, the nonuniformity value fornear region is overwritten in a work buffer at WB:G.

[0244] Moreover, at steps S40, S44 and S48 in FIGS. 20 and 21, thelookup tables lut_a0, lut_a1 and lut_a2a are used to convert the valueof ZB into an α-value which is in turn overwritten in the work buffer atWB:A.

[0245] In addition, at steps S41, S45 and S49, the nonuniformity patterntextures and U- and V-values (for SP0, SP1 and SP2) are used tooverwrite the nonuniformity patterns at WB:G. And, at this time, thenear region is masked and WB:A is used to perform the α-blending withthe already written values.

[0246] And, at step S50 in FIG. 21, WB:G is copied in WB:A.

[0247] Next, at step S51, the value of WB:A is multiplied by an α-valuefor near region, clamped with 1.0 and overwritten in WB:G. And, at stepS52, lut_(—)0 is used to convert the value of ZB into an α-value whichis in turn multiplied by the value of WB:A, clamped with 1.0 and writtenin WB:G. At this time, the near region is masked and overwritten.

[0248] Next, at step S53, WB:G is copied in FB:A. And, at step S54, afog color object having a full screen size is drawn in FB:R, G, B. Atthis time, FB:A is used to perform the α-blending with the alreadywritten values.

[0249] Finally, at step S55, an object which does not want to be coveredwith a fog is drawn in FB:R, G, B.

[0250] In such a manner, even a system in which each pixel in a framebuffer can only have a single α-value can implement the process of thisembodiment.

[0251] 4. Hardware Configuration

[0252] Hardware configuration for implementing this embodiment will bedescribed with reference to FIG. 25.

[0253] A main processor 900 operates to execute processing such as gameprocessing, image processing, sound processing according to a programstored in a CD (information storage medium) 982, a program transferredthrough a communication interface 990 or a program stored in a ROM (oneof the information storage media) 950.

[0254] A co-processor 902 is to assist the processing of the mainprocessor 900 and has a product-sum operator and divider which canperform high-speed parallel calculation to execute a matrix (or vector)calculation at high speed. For example, if a physical simulation forcausing an object to move or act (motion) requires the matrixcalculation or the like, the program running on the main processor 900instructs (or asks) that processing to the co-processor 902.

[0255] A geometry processor 904 is to perform a geometry processing suchas coordinate conversion, perspective conversion, light sourcecalculation, curve formation or the like and has a product-sum operatorand divider which can perform high-speed parallel calculation to executea matrix (or vector) calculation at high speed. For example, if thecoordinate conversion, perspective conversion and light sourcecalculation are to be performed, the program running on the mainprocessor 900 instructs that processing to the geometry processor 904.

[0256] A data expanding processor 906 is to perform a decoding processfor expanding image and sound compressed data or a process foraccelerating the decoding process in the main processor 900. Thus, inthe opening, intermission, ending or game scene, an MPEG compressedanimation may be displayed. In addition, the image and sound data to bedecoded may be stored in a ROM 950 or CD 982 or may externally betransferred through the communication interface 990.

[0257] A drawing processor 910 is to draw or render an objectconstructed by primitives (primitive faces) such as polygons or curvedsurfaces at high speed. On drawing of an object, the main processor 900uses the function of a DMA controller 970 to deliver the object data tothe drawing processor 910 and at the same time, transfers the texture toa texture storage section 924, if necessary. Then, the drawing processor910 draws the object in a frame buffer 922 at high speed whileperforming the hidden-surface removal by the use of a Z buffer or thelike, based on these object data and texture. The drawing processor 910can also perform α-blending (or translucency processing), depth cueing,mip mapping, fog effects, bilinear filtering, trilinear filtering,anti-aliasing, shading and so on. And, as the image for one frame hasbeen written into at the frame buffer 922, that image is then displayedon a display 912.

[0258] A sound processor 930 includes a multi-channel ADPCM sound sourceor the like for generating high-quality game sounds such as BGMs, effectsounds, voices and the like. The generated game sounds are then outputthrough a speaker 932.

[0259] Operation data from a game controller 942 (including a lever, abutton, a housing, a pad type controller or a gun type controller), savedata from a memory card 944 and personal data are provided through aserial interface 940.

[0260] ROM 950 has stored a system program and so on. In arcade gamesystems, however, ROM 950 functions as an information storage medium forstoring various programs. However, a hard disk may be used instead ofthe ROM 950.

[0261] RAM 960 is used as a working area for various processors.

[0262] DMA controller 970 controls DMA transfer between the processorsand the memories (RAM, VRAM, ROM and the like).

[0263] CD drive 980 drives the CD (or information storage medium) 982stored programs, image data or sound data to enable access to theseprograms and data.

[0264] The communication interface 990 is one for performing datatransfer between the game system and any external instrument through anetwork. In this case, a network connecting to the communicationinterface 990 may include a telecommunication line (such as analogtelephone line or ISDN) and a high-speed serial bus. And, data transfercan be carried out through Internet by using the telecommunication line.In addition, the data transfer between the present image generationsystem and any other image generation systems can be carried out whenthe high-speed serial bus is used.

[0265] All the sections or portions (means) of this embodiment may beexecuted only through hardware or only through a program which has beenstored in an information storage medium or which is distributed throughthe communication interface. Alternatively, they may be executed throughboth the hardware and program.

[0266] If the sections of this embodiment are to be implemented throughboth the hardware and program, the information storage medium stores aprogram for causing the hardware (or computer) to function as therespective sections in this embodiment. More particularly, theaforementioned program instructs the processings to the processors 902,904, 906, 910, 930 and so on, all of which are hardware, and deliversthe data to them, if necessary. And, each of the processors 902, 904,906, 910, 930 and so on will implement the corresponding one of thefunctional sections and/or portions of the present invention, based onthe instructions and delivered data.

[0267]FIG. 26A shows an arcade game system (or image generation system)to which this embodiment is applied. Players enjoy a game by operating aoperating section 1102 (including levers and buttons) while viewing agame scene displayed on a display 1100. A system board (or circuitboard) 1106 included in the game system includes various processors andmemories which are mounted thereon. The program (data) for implementingall the sections or portions of this embodiment has been stored in amemory 1108 which is an information storage medium on the system board1106. This program will be referred to “stored program (or storedinformation)”.

[0268]FIG. 26B shows a home game system (or image generation system) towhich this embodiment is applied. Players enjoy a game by operatingcontrollers 1202 and 1204 while viewing a game scene displayed on adisplay 1200. In this case, the aforementioned stored program (or storedinformation) has been stored in a CD 1206 which is a removableinformation storage medium on the main system or in memory cards 1208,1209 and so on.

[0269]FIG. 26C shows an example wherein this embodiment is applied to agame system which includes a host device 1300 and terminals 1304-1 to1304-n (game machines or portable telephones) connected to the hostdevice 1300 through a network (which is a small-scale network such asLAN or a global network such as INTERNET) 1302. In this case, theaforementioned stored program (or stored information) has been stored,for example, in an information storage medium 1306 which can becontrolled by the host device 1300, such as a magnetic disk unit, amagnetic tape unit or a memory. If each of the terminals 1304-1 to1304-n can generate game images and sounds in the standalone manner, agame program and the like for generating game images and sounds will bedelivered from the host device 1300 to that terminal. On the other hand,if each of the terminals cannot generate the game images and sounds inthe standalone manner, the host device 1300 generates game images andsounds which are in turn transmitted to that terminal.

[0270] In the configuration of FIG. 26C, however, each part of thisembodiment may dispersedly be implemented by the host device (or server)and terminals. Moreover, the aforementioned stored program (or storedinformation) for implementing the respective sections or portions ofthis embodiment may have been stored to distribute them into theinformation storage medium of the host device (or server) and theinformation storage media of the terminals.

[0271] Furthermore, each of the terminals connecting to the network maybe either of a home game system or an arcade game system.

[0272] Note that the present invention is not limited to theabove-described embodiment, and may be carried out in any one of variousother forms.

[0273] For example, the terms such as sprite, fog nonuniformity andblending which are recited as broad terms (such as virtual object, anonuniformity and synthesizing) in a certain portion of thisspecification description may be replaced by any other broad terms inthe other portion of this specification.

[0274] The technique of synthesizing the α-values is not limited to thedetails of the technique described in connection with this embodiment,but can be implemented by any one of various other forms.

[0275] Although this embodiment has been described as to thesynthesizing of α-nonuniformity setting α-values from α-values intowhich the Z-values of the original image are converted, the synthesizingof α-nonuniformity setting α-values is not limited to this.

[0276] Although this embodiment has been described as to thesynthesizing of the colors of the original image and fog in which thesecond α-value provided by synthesizing the first α-value with theα-nonuniformity setting α-value is used. However, the second α-value maybe used for an image generation different from such a synthesizingprocess.

[0277] Furthermore, the synthesizing of α-values and colors may becarried out by a plane unit or by a pixel unit. For example, FIG. 27shows an example in which the synthesizing operation of α-values andcolors is performed by a pixel unit. In FIG. 27, α0, α1 and α2 areα-values shown in FIGS. 24A, 24B and 24C (that is, α-values used tosynthesize α-nonuniformity setting α-values). By using these values α0,α1 and α2 to synthesize αUP0, αUP1 and αUP2 which are texel values ofthe fog nonuniformity texture (see FIG. 8), the α-nonuniformity settingα-value αUP can be provided. And, the second α-value αP2 can be providedby synthesizing this αUP with the first α-value αP1 provided based onthe Z-value and performing the clamping process. And, by using this αP2,the color of the original image is synthesized with the color of the fogto generate a fog image. FIG. 27 shows a final fog image which is drawnin the frame buffer by performing the synthesizing of such α-values withthe colors by a pixel unit.

[0278] The invention defined in any one of the dependent claims may notinclude part of the elements defined in any independent claim on whichit depends. Moreover, the primary component(s) of the invention definedin one independent claim may be included in the other independent claim.

[0279] The present invention can be applied to various games (such asfighting games, competition games, shooting games, robot fighting games,sports games and role playing games).

[0280] The present invention can be applied to various image generationsystems (or game systems) such as arcade game systems, home gamesystems, large-scale attraction system in which a number of players playa game, simulators, multimedia terminals, system boards for generatinggame images and so on.

What is claimed is:
 1. An image generation system which generates animage visible from a virtual camera in an object space, the imagegeneration system comprising: an alpha-value synthesis section whichsynthesizes a first alpha value and an alpha-nonuniformity settingalpha-value into a second alpha value, the first alpha valuecorresponding to a Z-value of each pixel in an original image, and thealpha-nonuniformity setting alpha-value of each pixel being nonuniformin a virtual plane; and a color synthesis section which synthesizes acolor of each pixel in the original image and a given color, based onthe second alpha value.
 2. The image generation system as defined inclaim 1, wherein the alpha-value synthesis section synthesizes aplurality of alpha-nonuniformity setting alpha-values provided for aplurality of virtual planes into the alpha-nonuniformity settingalpha-value to be synthesized with the first alpha value, the pluralityof alpha-nonuniformity setting alpha-values being different in thenonuniformity pattern.
 3. The image generation system as defined inclaim 2, wherein: the alpha-value synthesis section reduces a synthesisrate of an alpha-nonuniformity setting alpha-value for the nearestvirtual plane among the plurality of virtual planes when a virtualdistance from the virtual camera to the nearest virtual plane is shorterthan a given distance; and the alpha-value synthesis section reduces asynthesis rate of an alpha-nonuniformity setting alpha-value for thefarthest virtual plane among the plurality of virtual planes when avirtual distance from the virtual camera to the farthest virtual planeis larger than a given distance.
 4. The image generation system asdefined in claim 1, wherein the alpha-value synthesis section changes anonuniformity pattern in the virtual plane corresponding to thealpha-nonuniformity setting alpha-value, based on at least one ofvirtual camera information and time information.
 5. The image generationsystem as defined in claim 4, wherein the alpha-value synthesis sectionenlarges a nonuniformity pattern of the alpha-nonuniformity settingalpha-value in the virtual plane when a virtual distance from thevirtual camera to the virtual plane decreases.
 6. The image generationsystem as defined in claim 4, wherein, when the virtual camera moves ina first direction which is parallel to a screen, the alpha-valuesynthesis section moves a nonuniformity pattern of thealpha-nonuniformity setting alpha-value in the virtual plane in a seconddirection which is opposite to the first direction.
 7. The imagegeneration system as defined in claim 4, wherein the alpha-valuesynthesis section applies nonuniformity pattern texture mapping to avirtual object to generate the alpha-nonuniformity setting alpha-value,and changes texture coordinates of the virtual object depending on atleast one of the virtual camera information and the time information. 8.The image generation system as defined in claim 2, wherein thealpha-value synthesis section sets an alpha-value used to synthesize theplurality of alpha-nonuniformity setting alpha-values, based on aZ-value of each pixel in the original image.
 9. The image generationsystem as defined in claim 8, wherein, when comparison of Z-values ofpixels in the original image and a virtual Z-value of a virtual planecorresponding to the alpha-nonuniformity setting alpha-value to besynthesized with the first alpha value indicates that the pixels in theoriginal image are nearer to the virtual camera than the virtual plane,the alpha-value synthesis section sets an alpha value used to synthesizethe plurality of alpha-nonuniformity setting alpha-values into an alphavalue which invalidates synthesis of the alpha-nonuninformity settingalpha-values.
 10. The image generation system as defined in claim 8,wherein the alpha-value synthesis section uses a Z-value of each pixelin the original image as an index number of a lookup table for indexcolor texture mapping and applies index color texture mapping to avirtual object using the lookup table so that the Z-value is convertedinto an alpha value used to synthesize the plurality ofalpha-nonuniformity setting alpha-values.
 11. An image generation systemwhich generates an image visible from a virtual camera in an objectspace, the image generation system comprising: an alpha-value synthesissection which synthesizes a first alpha value and an alpha-nonuniformitysetting alpha-value into a second alpha value, the alpha-nonuniformitysetting alpha-value of each pixel being nonuniform in a virtual plane;and an image generating section which performs image generationprocessing based on the second alpha value, wherein the alpha-valuesynthesis section synthesizes a plurality of alpha-nonuniformity settingalpha-values provided for a plurality of virtual planes into thealpha-nonuniformity setting alpha-value to be synthesized with the firstalpha value, the plurality of alpha-nonuniformity setting alpha-valuesbeing different in nonuniformity pattern.
 12. An image generation systemwhich generates an image visible from a virtual camera in an objectspace, the image generation system comprising: an alpha-value synthesissection which synthesizes a first alpha value and an alpha-nonuniformitysetting alpha-value into a second alpha value, the alpha-nonuniformitysetting alpha-value of each pixel being nonuniform in a virtual plane;and an image generating section which performs image generationprocessing based on the second alpha value, wherein the alpha-valuesynthesis section changes a nonuniformity pattern in the virtual planecorresponding to the alpha-nonuniformity setting alpha-value, based onat least one of virtual camera information and time information.
 13. Animage generation system which generates an image visible from a virtualcamera in an object space, the image generation system comprising: analpha-value synthesis section which synthesizes a first alpha value andan alpha-nonuniformity setting alpha-value into a second alpha value,the alpha-nonuniformity setting alpha-value of each pixel beingnonuniform in a virtual plane; and an image generating section whichperforms image generation processing based on the second alpha value,wherein the alpha-value synthesis section sets an alpha-value used tosynthesize the alpha-nonuniformity setting alpha-values, based on aZ-value of each pixel in an original image.
 14. A program whichgenerates an image visible from a given viewpoint in an object space,the program causing a computer to function as: an alpha-value synthesissection which synthesizes a first alpha value and an alpha-nonuniformitysetting alpha-value into a second alpha value, the first alpha valuecorresponding to a Z-value of each pixel in an original image, and thealpha-nonuniformity setting alpha-value of each pixel being nonuniformin a virtual plane; and a color synthesis section which synthesizes acolor of each pixel in the original image and a given color, based onthe second alpha value.
 15. The program as defined in claim 14, whereinthe alpha-value synthesis section synthesizes a plurality ofalpha-nonuniformity setting alpha-values provided for a plurality ofvirtual planes into the alpha-nonuniformity setting alpha-value to besynthesized with the first alpha value, the plurality ofalpha-nonuniformity setting alpha-values being different innonuniformity pattern.
 16. The program as defined in claim 15, wherein:the alpha-value synthesis section reduces a synthesis rate of analpha-nonuniformity setting alpha-value for the nearest virtual planeamong the plurality of virtual planes when a virtual distance from thevirtual camera to the nearest virtual plane is shorter than a givendistance; and the alpha-value synthesis section reduces a synthesis rateof an alpha-nonuniformity setting alpha-value for the farthest virtualplane among the plurality of virtual planes when a virtual distance fromthe virtual camera to the farthest virtual plane is larger than a givendistance.
 17. The program as defined in claim 14, wherein thealpha-value synthesis section changes a nonuniformity pattern in thevirtual plane corresponding to the alpha-nonuniformity settingalpha-value, based on at least one of virtual camera information andtime information.
 18. The program as defined in claim 17, wherein thealpha-value synthesis section enlarges a nonuniformity pattern of thealpha-nonuniformity setting alpha-value in the virtual plane when avirtual distance from the virtual camera to the virtual plane decreases.19. The program as defined in claim 17, wherein, when the virtual cameramoves in a first direction which is parallel to a screen, thealpha-value synthesis section moves a nonuniformity pattern of thealpha-nonuniformity setting alpha-value in the virtual plane in a seconddirection which is opposite to the first direction.
 20. The program asdefined in claim 17, wherein the alpha-value synthesis section appliesnonuniformity pattern texture mapping to a virtual object to generatethe alpha-nonuniformity setting alpha-value, and changes texturecoordinates of the virtual object depending on at least one of thevirtual camera information and the time information.
 21. The program asdefined in claim 15, wherein the alpha-value synthesis section sets analpha-value used to synthesize the plurality of alpha-nonuniformitysetting alpha-values, based on a Z-value of each pixel in the originalimage.
 22. The program as defined in claim 21, wherein, when comparisonof Z-values of pixels in the original image and a virtual Z-value of avirtual plane corresponding to the alpha-nonuniformity settingalpha-value to be synthesized with the first alpha value indicates thatthe pixels in the original image are nearer to the virtual camera thanthe virtual plane, the alpha-value synthesis section sets an alpha valueused to synthesize the plurality of alpha-nonuniformity settingalpha-values into an alpha value which invalidates synthesis of thealpha-nonuninformity setting alpha-values.
 23. The program as defined inclaim 21, wherein the alpha-value synthesis section uses a Z-value ofeach pixel in the original image as an index number of a lookup tablefor index color texture mapping and applies index color texture mappingto a virtual object using the lookup table so that the Z-value isconverted into an alpha value used to synthesize the plurality ofalpha-nonuniformity setting alpha-values.
 24. A program which generatesan image visible from a given viewpoint in an object space, the programcausing a computer to function as: an alpha-value synthesis sectionwhich synthesizes a first alpha value and an alpha-nonuniformity settingalpha-value into a second alpha value, the alpha-nonuniformity settingalpha-value of each pixel being nonuniform in a virtual plane; and animage generating section which performs image generation processingbased on the second alpha value, wherein the alpha-value synthesissection synthesizes a plurality of alpha-nonuniformity settingalpha-values provided for a plurality of virtual planes into thealpha-nonuniformity setting alpha-value to be synthesized with the firstalpha value, the plurality of alpha-nonuniformity setting alpha-valuesbeing different in nonuniformity pattern.
 25. A program which generatesan image visible from a given viewpoint in an object space, the programcausing a computer to function as: an alpha-value synthesis sectionwhich synthesizes a first alpha value and an alpha-nonuniformity settingalpha-value into a second alpha value, the alpha-nonuniformity settingalpha-value of each pixel being nonuniform in a virtual plane; and animage generating section which performs image generation processingbased on the second alpha value, wherein the alpha-value synthesissection changes a nonuniformity pattern in the virtual planecorresponding to the alpha-nonuniformity setting alpha-value, based onat least one of virtual camera information and time information.
 26. Aprogram which generates an image visible from a given viewpoint in anobject space, the program causing a computer to function as: analpha-value synthesis section which synthesizes a first alpha value andan alpha-nonuniformity setting alpha-value into a second alpha value,the alpha-nonuniformity setting alpha-value of each pixel beingnonuniform in a virtual plane; and an image generating section whichperforms image generation processing based on the second alpha value,wherein the alpha-value synthesis section sets an alpha-value used tosynthesize the alpha-nonuniformity setting alpha-values, based on aZ-value of each pixel in an original image.
 27. A computer-readableinformation storage medium storing the program as defined in claim 14.28. A computer-readable information storage medium storing the programas defined in claim
 24. 29. A computer-readable information storagemedium storing the program as defined in claim
 25. 30. Acomputer-readable information storage medium storing the program asdefined in claim
 26. 31. An image generation method of generating animage visible from a given viewpoint in an object space, the imagegeneration method comprising: synthesizing a first alpha value and analpha-nonuniformity setting alpha-value into a second alpha value, thefirst alpha value corresponding to a Z-value of each pixel in anoriginal image, and the alpha-nonuniformity setting alpha-value of eachpixel being nonuniform in a virtual plane; and synthesizing a color ofeach pixel in the original image and a given color, based on the secondalpha value.
 32. An image generation method of generating an imagevisible from a given viewpoint in an object space, the image generationmethod comprising: synthesizing a first alpha value and analpha-nonuniformity setting alpha-value into a second alpha value, thealpha-nonuniformity setting alpha-value of each pixel being nonuniformin a virtual plane; performing image generation processing based on thesecond alpha value; and synthesizing a plurality of alpha-nonuniformitysetting alpha-values provided for a plurality of virtual planes into thealpha-nonuniformity setting alpha-value to be synthesized with the firstalpha value, the plurality of alpha-nonuniformity setting alpha-valuesbeing different in nonuniformity pattern.
 33. An image generation methodof generating an image visible from a given viewpoint in an objectspace, the image generation method comprising: synthesizing a firstalpha value and an alpha-nonuniformity setting alpha-value into a secondalpha value, the alpha-nonuniformity setting alpha-value of each pixelbeing nonuniform in a virtual plane; performing image generationprocessing based on the second alpha value; and changing a nonuniformitypattern in the virtual plane corresponding to the alpha-nonuniformitysetting alpha-value, based on at least one of virtual camera informationand time information.
 34. An image generation method of generating animage visible from a given viewpoint in an object space, the imagegeneration method comprising: synthesizing a first alpha value and analpha-nonuniformity setting alpha-value into a second alpha value, thealpha-nonuniformity setting alpha-value of each pixel being nonuniformin a virtual plane; performing image generation processing based on thesecond alpha value; and setting an alpha-value used to synthesize thealpha-nonuniformity setting alpha-values, based on a Z-value of eachpixel in an original image.